package school;

import java.util.ArrayList;
import java.util.List;

// 子类Teacher：继承Person，保留实验二特有属性与方法，补充super()调用
public class Teacher extends Person {
    private List<Course> courses;    // 实验二原有：所授课程列表（支持多门课程）
    private String phoneNumber;      // 实验二原有：联系方式

    // 子类构造方法：通过super()调用Person父类构造方法，初始化共性属性
    public Teacher(int teacherId, String name, String gender, String phoneNumber) {
        super(teacherId, name, gender);  // 调用父类构造：初始化id（工号）、name、gender
        this.phoneNumber = phoneNumber;  // 子类特有属性初始化（实验二原有）
        this.courses = new ArrayList<>();
    }

    // 实验二原有：添加课程方法（保留逻辑）
    public void addCourse(Course course) {
        this.courses.add(course);
        course.setTeacher(this);
    }

    // 重写父类方法：打印工作单→教师授课列表（替代实验二的openCourses()，符合实验要求）
    @Override
    public void printWorksheet() {
        System.out.println("\n教师" + super.name + "（工号：" + super.id + "，联系电话：" + phoneNumber + "）开设的课程：");
        for (Course course : courses) {
            System.out.println("课程编号：" + course.getCourseId() + "，课程名称：" + course.getCourseName() +
                    "，学分：" + course.getCredits() + "，时间：" + course.getTime() +
                    "，地点：" + course.getLocation());
        }
    }

    // 实验二原有：Getter方法（保留，供测试类访问）
    public List<Course> getCourses() {
        return courses;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
}